﻿Public Class GozlukMuracaat : Inherits Process

	Public Overrides Sub GenericEvent(ByVal e As ProcessEventArgs)
		Select Case e.EventType
			Case EventType.Initialize
				Start("Gözlük müracaatları", "Gözlük müracaatları listelenmiştir.")
				AddList()
				List.AddColumns("repsube(Şube;c;40),dosyano(Dosya;c;50),sdrm(A/P;c;30),kimlik(Kimlik no.;c;80),sno(Sigorta.no.;c;80)")
				List.AddColumns("hesapkarar(Hesap-Karar;l;80),adi(Adı soyadı;l;100%),murtar(Mür.tar.;d;80),islemtar(İşlem tar.;d;80)")
				List.AddButtons("Edit")
			Case EventType.Shown
				List.DataSource = Saglik.Gozluk.Muracaatlar(Remote)
			Case EventType.Edit, EventType.Activate
				Dim Process As New GozlukMuracaatDetay
				Process.AddArgument("repsube", List.SelectedRow("repsube"))
				Process.AddArgument("dosyano", List.SelectedRow("dosyano"))
				Window.Launch(Process)
		End Select
	End Sub

End Class

Public Class GozlukMuracaatDetay : Inherits Process

	'Dim eski, eval As List

	Public Overrides Sub GenericEvent(e As ProcessEventArgs)
		Select Case e.EventType
			Case EventType.Initialize
				Start("Gözlük müracaatı", "Gözlük müracaatı detayları.")
				'AddReport(0, 300)
				'eval = AddList("eval", 0, 0)
				'eval.Columns = "acik(Açıklama;100%l),#button(;72c)"
				AddLayout()
				'AddDataWindow()
			Case EventType.Shown
				Rs = Saglik.Gozluk.Oku(Remote, Arguments("repsube"), Arguments("dosyano"))
				Layout.AddHeader("prev", "Daha önce aldığı gözlük yardımları açısından değerlendirme")
				Layout.Headers("prev").AddButton("prev", "Göster")
				Dim Rsp = Sigortali.Gozluk.Liste(Remote, Rs("kimlik"))
				For Each c In "UY"
					Dim ct = c
					Dim cer = (From r In Rsp.Rows Where IsNull(r("cam"), "") = ct AndAlso IsNull(r("cerceve"), 0) = 1 AndAlso r("onay") = "E" Order By r("murtar") Descending).FirstOrDefault
					Dim a = If(c = "U", "uzak", "yakın")
					If cer Is Nothing Then
						Layout.Headers("prev").AddRow("[/]Hak sahibi, daha önce hiç " & a & " gözlük çerçevesi yardımı almamıştır.")
					ElseIf DateAdd(DateInterval.Year, 5, cer("murtar")) > Rs("murtar") Then
						Layout.Headers("prev").AddRow("[x]" & DMY(cer("murtar")) & " tarihinde " & a & " gözlük çerçevesi almıştır. 5 yıl dolmadığı için tekrar alamaz.")
					ElseIf DateAdd(DateInterval.Year, 5, cer("murtar")) < Rs("murtar") Then
						Layout.Headers("prev").AddRow("[/]" & DMY(cer("murtar")) & " tarihinde " & a & " gözlük çerçevesi almıştır. 5 yıl dolduğu için alabilir.")
					End If
					Dim cam = (From r In Rsp.Rows Where IsNull(r("cam"), "") = ct AndAlso IsNull(r("camsayi"), 0) = 1 AndAlso r("onay") = "E" Order By r("murtar") Descending).FirstOrDefault
					If cam Is Nothing Then
						Layout.Headers("prev").AddRow("[/]Hak sahibi, daha önce hiç " & a & " gözlük camı yardımı almamıştır.")
					ElseIf DateAdd(DateInterval.Year, 1, cam("murtar")) > Rs("murtar") Then
						Layout.Headers("prev").AddRow("[x]" & DMY(cam("murtar")) & " tarihinde " & a & " gözlük camı almıştır. 1 yıl dolmadığı için tekrar alamaz.")
					ElseIf DateAdd(DateInterval.Year, 1, cam("murtar")) < Rs("murtar") Then
						Layout.Headers("prev").AddRow("[/]" & DMY(cam("murtar")) & " tarihinde " & a & " gözlük camı almıştır. 1 yıl dolduğu için alabilir.")
					End If
				Next

				If Rs("sdrm") = "A" Then
					Layout.AddHeader("prim", "Sigortalının yatırımları açısından değerlendirme")
					Layout.Headers("prim").AddButton("prim", "Yatırımlar")
					Layout.Headers("prim").AddButton("gircik", "Giriş/Çıkış")
					Dim Rsi = Sigortali.GirisCikis(Remote, Rs("sno"))
					Dim Rsy = Sigortali.HesapKarti(Remote, Rs("sno"))
					Dim isv = (From r In Rsi Where (r("statu") = "01.01.003" Or r("statu") = "01.01.004") And IsNull(r("ciktar")))
					If isv.Any Then
						Dim d = Today.AddMonths(-3)
						Dim sondonem = New Date(Today.Year, Int((Today.Month - 1) / 3) * 3 + 1, 1)
						Dim pogst = (From r In Rsy Where r("bordrotar") >= sondonem And r("bordrotar") < sondonem.AddMonths(3) Select CInt(r("pogs"))).Sum
						If pogst >= 90 Then
							Layout.Headers("prim").AddRow("[/]Hak sahibi işveren olup bir önceki dönem yatırımı tamdır.")
						ElseIf pogst > 0 Then
							Layout.Headers("prim").AddRow("[i]Hak sahibi işveren olup bir önceki dönemde " & pogst & " gün yatırımı vardır.")
						Else
							Layout.Headers("prim").AddRow("[x]Hak sahibi işveren olup bir önceki dönemde yatırımı yoktur.")
						End If
					Else
						Dim d = Today.AddDays(-20)
						Dim sondonem = d.AddDays(-d.Day + 1)
						Dim pogst = (From r In Rsy Where r("bordrotar") = sondonem Select CInt(r("pogs"))).Sum
						If pogst >= 30 Then
							Layout.Headers("prim").AddRow("[/]Hak sahibinin bir önceki ay yatırımı tamdır.")
						ElseIf pogst > 0 Then
							Layout.Headers("prim").AddRow("[i]Hak sahibinin bir önceki ayda " & pogst & " gün yatırımı vardır.")
						Else
							Layout.Headers("prim").AddRow("[x]Hak sahibinin bir önceki ay yatırımı yoktur.")
						End If
					End If
				End If

				Layout.AddHeader("eval", "Son değerlendirme")

				'eval.AddHeaderRow("Çalışma izni durumu")

				'DataWindow.AddGroup("Hak sahibi", "sdrm*;sno*;kimlik*;adi*;soyadi*;hturu*;kararno*")
				'DataWindow.AddGroup("Başvuru bilgileri", "murtar*;recetetar*")
				'DataWindow.AddGroup("İşyeri bilgileri", "isyerino*;isyeriadi*")
				'DataWindow.AddGroup("Uzak çerçeve bilgileri", "uceronay:onay;ucertutar:tutar**;ucersebep:cerodememe**")
				'DataWindow.AddGroup("Uzak cam bilgileri", "ucamonay:onay;ucamtutar:tutar**;ucamsebep:camodememe**")
				'DataWindow.AddGroup("Yakın çerçeve bilgileri", "yceronay:onay;ycertutar:tutar**;ycersebep:cerodememe**")
				'DataWindow.AddGroup("Yakın cam bilgileri", "ycamonay:onay;ycamtutar:tutar**;ycamsebep:camodememe**")
				'DataWindow.Recordset = Rs
				Buttons.Show("Save")
			Case EventType.Other
				Select Case e.Name
					Case "Layout.prev" : ShowDialog("prev")
					Case "Layout.prim" : ShowDialog("prim")
					Case "Layout.gircik" : ShowDialog("gircik")
				End Select
				'Select Case e.Name
				'	Case "DataWindow.uceronay.change", "DataWindow.ucamonay.change", "DataWindow.yceronay.change", "DataWindow.ycamonay.change"
				'		Dim f = e.Name.Replace("DataWindow.", "").Replace("onay.change", "")
				'		Dim v = DataWindow.Fields(f & "onay").Value
				'		DataWindow.Fields(f & "tutar").Enabled = v = "E"
				'		DataWindow.Fields(f & "sebep").Enabled = v = "H"
				'End Select
		End Select
	End Sub

	Public Overrides Sub DialogEvent(e As ProcessEventArgs)
		Select Case Modal.Name
			Case "prev" : PrevDialog(e)
			Case "prim" : PrimDialog(e)
			Case "gircik" : GirisCikisDialog(e)
		End Select
	End Sub

	Private Sub PrevDialog(e As ProcessEventArgs)
		Select Case e.EventType
			Case EventType.Initialize
				Modal.Start("Gözlük müracaatı", "Hak sahibinin önceki gözlük yardımı müracaatları.")
				Modal.AddList("eski", 640, 250)
				Modal.List.AddColumns("murtar(Müracaat tar;80%d),tur(Tür;60%c),cerceve(Çerçeve;120%l),cam(Cam;120%l),islemtar(İşlem tar.;80%d),sube(Şube;40%c),dosyano(Dosya;60%r)")
			Case EventType.Shown
				Dim Rsg = Sigortali.Gozluk.Liste(Remote, Rs("kimlik"))
				For Each Row In Rsg
					Dim cer = IsNull(If(IsNull(Rsg("onay"), "") = "H", Rsg("odememe"), If(IsNull(Rsg("cerceve"), 0) = 1, "[/]" & Fm(Rsg("cerodemik")), Rsg("cerodememe"))), "")
					Dim cam = IsNull(If(IsNull(Rsg("onay"), "") = "H", Rsg("odememe"), If(IsNull(Rsg("camsayi"), 0) = 1, "[/]" & Fm(Rsg("camodemik")), Rsg("camodememe"))), "")
					Select Case cer
						Case "05.01.001" : cer = "[x]1 yıl geçmedi"
						Case "05.02.002" : cer = "[x]5 yıl geçmedi"
						Case "05.01.002" : cer = "[x]5 yıl geçmedi"
						Case "05.02.003" : cer = "[x]Bifocal..."
						Case "05.02.004" : cer = "[x]Hak sahibi değil"
						Case "05.02.006" : cer = ""
					End Select
					Select Case cam
						Case "05.01.001" : cam = "[x]1 yıl geçmedi"
						Case "05.03.001" : cam = "[x]1 yıl geçmedi"
						Case "05.01.002" : cer = "[x]5 yıl geçmedi"
					End Select
					Modal.List.AddRow(Rsg("murtar"), Rsg("cam"), cer, cam, Rsg("islemtar"), Rsg("sube"), Trim(IsNull(Rsg("dosyano"), "")))
				Next
		End Select
	End Sub

	Private Sub PrimDialog(e As ProcessEventArgs)
		Select Case e.EventType
			Case EventType.Initialize
				Modal.Start("Gözlük müracaatı", "Hak sahibinin yatırımları.")
				Modal.AddList("List", 760, 360)
				Modal.List.AddColumns("isyerino(İşyeri no.;70c),isyeriadi(İşyeri adı;100%l),bordro(Brd.;40c),bordrotar(Bordro tar.;80d),pek(PEK;80m),pogs(PÖGS;40n),makbuzno(Makbuz no.;70c),islemtar(İşlem tar.;80d),taksit(;30c)")
			Case EventType.Shown
				Dim Rsg = Sigortali.HesapKarti(Remote, Rs("sno"))
				Modal.List.DataSource = Rsg
		End Select
	End Sub

	Private Sub GirisCikisDialog(e As ProcessEventArgs)
		Select Case e.EventType
			Case EventType.Initialize
				Modal.Start("Gözlük müracaatı", "Hak sahibinin işe giriş/çıkışları.")
				Modal.AddList("List", 760, 360)
				Modal.List.AddColumns("isyerino(İşyeri no.;70c),isyeriadi(İşyeri adı;100%l),statu(Statü;60c),isi(İşi;120l),girtar(Giriş tar.;80d),ciktar(Giriş tar.;80d),neden(Neden;60c)")
			Case EventType.Shown
				Dim Rsg = Sigortali.GirisCikis(Remote, Rs("sno"))
				Modal.List.DataSource = Rsg
		End Select
	End Sub

End Class
